package org.scboy.dbms.api;

import java.util.List;

import org.scboy.dbms.api.entity.DbColumn;
import org.scboy.dbms.api.entity.DbIndex;
import org.scboy.dbms.api.entity.DbTable;
import org.scboy.dbms.api.entity.SqlConfig;

/**
 * 数据库管理服务接口
 */
public interface IDbManager {

	/**
	 * 初始化数据库实体配置
	 */
	//public void initDbEntity(List<DbTable> tables);

	/**
	 * 新增表配置
	 * @param table
	 * @return
	 */
	public int insertTable(DbTable table);

	/**
	 * 修改表配置
	 * @param table
	 * @return
	 */
	public int updateTable(DbTable table);
	
	/**
	 * 新增列配置
	 * @param column
	 * @return
	 */
	public int insertColumn(DbColumn column);
	
	/**
	 * 删除关联表ID的列
	 * @param tableId
	 * @return
	 */
	public int deleteColumns(String tableId);
	
	/**
	 * 新增索引配置
	 * @param index
	 * @return
	 */
	public int insertIndex(DbIndex index);

	/**
	 * 删除关联表ID的索引配置
	 * @param tableId
	 * @return
	 */
	public int deleteIndexs(String tableId);
	
	/**
	 * 获取DBTable配置
	 * @param serverName
	 * @param tableName
	 * @return
	 */
	public DbTable getTable(String serverName,String tableName);
	
	/**
	 * 初始化SQL配置
	 */
	public void initSql(List<SqlConfig> sqls);
	
	
	/**
	 * 心跳检查数据库实体配置
	 */
	public List<DbTable> taskDbEntity(String serverName);
	/**
	 * 心跳检查数据库SQL配置
	 */
	public List<SqlConfig> taskSql(String serverName);
}
